1. Technical Field
Embodiments of the disclosure generally relate to data transfers and more particularly to efficient streaming of data between devices.
2. Related Art
Native Command Queuing (NCQ) is a technology designed to increase performance of a hard drive by allowing the hard drive to internally optimize or “queue” the order in which received commands (e.g., read or write commands) are executed. Multiple commands may be received at a serial device from a host device, for example, over various data streams of a Universal Serial Bus (USB) interface (e.g., a USB 3.0 interface). The serial device may pass the commands to the hard drive which may execute the commands in a different order than sent by the host device in accordance with NCQ techniques.
Data provided in response to the execution of one of the commands by the hard drive is typically transferred between the host device and the serial device over the same data stream as the command. However, the serial device typically will not know which command will be executed next until notified by the storage media device. Typically, the serial device must assert an interrupt to a processor of the serial device to determine the data stream associated with the command before data can be transferred in response to the command. Once determined, the processor typically must program a device controller with the proper data stream so that data can be transferred to the host device over the data stream expected by the host device. This additional processing introduces overhead and latency to data transfers between the serial device and the host device which reduces the overall data rate of such data transfers.